home *** CD-ROM | disk | FTP | other *** search
/ SGI Developer Toolbox 6.1 / SGI Developer Toolbox 6.1 - Disc 4.iso / src / haeberli / tools / mousemon.c < prev    next >
C/C++ Source or Header  |  1994-08-01  |  2KB  |  107 lines

  1. /*
  2.  * Copyright 1991, 1992, 1993, 1994, Silicon Graphics, Inc.
  3.  * All Rights Reserved.
  4.  *
  5.  * This is UNPUBLISHED PROPRIETARY SOURCE CODE of Silicon Graphics, Inc.;
  6.  * the contents of this file may not be disclosed to third parties, copied or
  7.  * duplicated in any form, in whole or in part, without the prior written
  8.  * permission of Silicon Graphics, Inc.
  9.  *
  10.  * RESTRICTED RIGHTS LEGEND:
  11.  * Use, duplication or disclosure by the Government is subject to restrictions
  12.  * as set forth in subdivision (c)(1)(ii) of the Rights in Technical Data
  13.  * and Computer Software clause at DFARS 252.227-7013, and/or in similar or
  14.  * successor clauses in the FAR, DOD or NASA FAR Supplement. Unpublished -
  15.  * rights reserved under the Copyright Laws of the United States.
  16.  */
  17. /*
  18.  *    mousemon - 
  19.  *        Monitor the buttons of the mouse.  This is useful for
  20.  *    demos sometimes.
  21.  *
  22.  *                Paul Haeberli - 1985
  23.  *
  24.  */
  25. #include "gl.h"
  26. #include "device.h"
  27. #include "port.h"
  28.  
  29. #define HWIDTH 0.6
  30.  
  31. int om1, om2, om3;
  32. int m1, m2, m3;
  33.  
  34. main()
  35. {
  36.     short val;
  37.   
  38.     noborder();
  39.     keepaspect(2,3);
  40.     winopen("mousemon");
  41.  
  42.     m1 = getbutton(MOUSE1);
  43.     m2 = getbutton(MOUSE2);
  44.     m3 = getbutton(MOUSE3);
  45.     qdevice(TIMER0);
  46.     qdevice(ESCKEY);
  47.     noise(TIMER0,5);
  48.     makeframe();
  49.     while (1) {
  50.     switch(qread(&val)) {
  51.         case TIMER0:
  52.         drawit();
  53.         break;
  54.         case REDRAW:
  55.         makeframe();
  56.         break;
  57.         case ESCKEY:
  58.         exit(0);
  59.         break;
  60.      }    
  61.     }
  62. }
  63.  
  64. drawit()
  65. {
  66.     m1 = getbutton(MOUSE1);
  67.     m2 = getbutton(MOUSE2);
  68.     m3 = getbutton(MOUSE3);
  69.     if (m3!=om3) {
  70.     drawent(-2.1,m3);    
  71.     om3 = m3;
  72.     }
  73.     if (m2!=om2) {
  74.     drawent(0.0,m2);    
  75.     om2 = m2;
  76.     }
  77.     if (m1!=om1) {
  78.     drawent(2.1,m1);    
  79.     om1 = m1;
  80.     }
  81. }
  82.  
  83. drawent(x,val)
  84. float x;
  85. int val;
  86. {
  87.     if (val) {
  88.     grey(0.0);
  89.     rectf(x-HWIDTH,0.6,x+HWIDTH,4.5);
  90.     } else {
  91.     grey(0.6);
  92.     rectf(x-HWIDTH,0.6,x+HWIDTH,4.5);
  93.     grey(0.0);
  94.     rect(x-HWIDTH,0.6,x+HWIDTH,4.5);
  95.     }
  96. }
  97.  
  98. makeframe()
  99. {
  100.     reshapeviewport();
  101.     ortho2(-4.0,4.0,-6.0,6.0);
  102.     grey(0.6);
  103.     rectf(-4.0,-6.0,4.0,6.0);
  104.     om1 = om2 = om3 = -1;
  105.     drawit();
  106. }
  107.